package class_code.obj_1_private;

/**
 * 封装的优点
 * 1. 良好的封装能够减少耦合。
 * <p>
 * 2. 类内部的结构可以自由修改。
 * <p>
 * 3. 可以对成员变量进行更精确的控制。
 * <p>
 * 4. 隐藏信息，实现细节。
 */

class Person {
    private int id;
    private String name;
    private int age;


    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age >= 120)
            this.age = 18;
        else
            this.age = age;
    }
}

class Person2 {
    int id;
    String name;
    int age;


}

public class PrivateDemo1 {


    public static void main(String[] args) {
//        对于两个相同的类，一个使用了private，一个不使用
        Person p1 = new Person();
        Person2 p2 = new Person2();

//        p1 由于private 所以只能通过方法赋值
        p1.setName("纳西达");
//        p1.name = "纳西达";
        System.out.println(p1.getName());
//        p2 就可以随意操控数据
        p2.name = "纳西达";
        System.out.println(p2.name);

    }
}
